A typical interactive computer system incorporates a user interface which bridges the gap between a human user who seeks to control the computer system and the hardware and/or software which makes up the computer system. In addition to hardware components such as alphanumeric keyboards, graphical user interfaces have become increasingly common features of personal computers. Such interfaces are provided either as built-in portions of the computer operating system, as in the case of the Macintosh.RTM. computer available from Apple Computer, Inc. of Cupertino, Calif., or as add on software products that can be purchased and installed separately, such as the Windows.TM. operating system available from Microsoft Corporation of Redmond, Wash.
Regardless of whether the user interface is a hardware device or a software program (or, as is increasingly the case, a combination of both), the purpose of the user interface is, as indicated, to bridge the gap between the human operator and the device being utilized. For example, graphical user interfaces used with personal computers often have the ability to initiate execution of other, so called, application programs. Examples of application programs might be spreadsheets, wordprocessing systems, database programs, etc. Within application programs, a user is often able to move a cursor around an associated workspace displayed on a display screen by using a cursor control device (e.g., a mouse, trackball, pen, etc.). The user triggers certain events by pressing a button on the cursor control device (e.g., "clicking" a mouse). Each cursor control event may be associated with a command or may initiate a feature.
Mouse-driven interfaces often incorporate cursor tools. That is, the cursor can be assigned a specific functionality, after which the cursor is usually displayed as a tool image associated with its functionality. For example, a cursor may be assigned the functionality to act as a zoom-in tool. So assigned, the cursor may be displayed within the work space as a magnifying glass, thus representing its functionality as a zoom-in tool. Typically, each time a user wishes to change the functionality assigned to the cursor, the user must first perform a number of key strokes or other commands. For example, the user may have to access a pull down menu in order to assign a new functionality to the cursor. Thus, using a different cursor function requires two entirely distinct steps, one to select the tool and one to use the tool in the desired way.
For certain application programs, such as computer assisted drawing programs, a user will need to perform a mixture of several related operations repetitively. This will require the user to access a pull down menu or other means of assigning cursor functionality each time she/he wishes to initiate a new event. Such activities soon become a burden and/or a distraction. Therefore, it would be desirable to have a cursor tool which allows the user to select from a number cursor functions easily, and smoothly.